package com.hhkj.admin.course.service.base;

import com.hhkj.admin.course.domain.Course;
import com.hhkj.admin.course.model.dopo.CourseDo;
import com.hhkj.admin.course.model.dopo.CoursePo;
import com.ruoyi.common.base.biz.service.base.BaseService;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * 课程信息Service接口
 *
 * @author ruoyi
 * @since 2023-05-09
 */
public interface CourseService extends BaseService<Course, CourseDo, CoursePo>
{

    /**
     * 根据id，获取课程列表
     * @param idList
     * @return
     */
    List<Course> listByIdList(List<Long> idList, Integer disableFlag);

    /**
     * 获取科目列表
     *
     * @param conditionDo 筛选条件
     * @return 科目列表
     */
    List<CoursePo> listLevelNumThirdPoByDo(Course conditionDo);

    /**
     * 获取科目详情
     *
     * @param id 科目id
     * @return 科目详情
     */
    CoursePo getLevelNumThirdPoById(Long id);

    /**
     * 根据id获取统计今日题库数量
     *
     * @param idList 课程id列表
     * @return 题库信息
     */
    List<CoursePo> listTodayBankAmountByIdList(List<Long> idList);

    /**
     * 根据id获取统计今日题库数量
     *
     * @param id 课程id
     * @return 题库信息
     */
    CoursePo getTodayBankAmountById(Long id);

    /**
     * 根据课程名称列表，获取课程列表
     * @param courseNameList 课程的名称列表
     * @param disableFlag 是否禁用，为null值则代表不校验，全部查出来
     * @return 课程列表
     */
    List<Course> listByNameList(List<String> courseNameList, Integer disableFlag);

}
